//
//  UITableViewCell+MKUI.h
//  MKUI
//
//  Created by sushangjin on 2018/9/10.
//  Copyright © 2018年 sushangjin. All rights reserved.
//

#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN

extern CGFloat const kMKUIAccessoryTypeDefaultLeftMargin;//系统操作区域左边距默认值=10
extern CGFloat const kMKUIAccessoryTypeDefaultRightMargin;//系统操作区域右边距默认值=15

@interface UITableViewCell (MKUI)
//系统操作区域视图宽度
@property(nonatomic,readonly) CGFloat mk_accessorySystemTypeViewWidth;
//系统操作区域视图与contentView的左边距
@property(nonatomic,readonly) CGFloat mk_accessorySystemTypeViewLeftMargin;
//系统操作区域视图与UITableViewCell的右边距
@property(nonatomic,readonly) CGFloat mk_accessorySystemTypeViewRightMargin;

//自定义操作区域视图与contentView的左边距
@property(nonatomic,readonly) CGFloat mk_accessoryCustomViewLeftMargin;
//自定义操作区域视图与UITableViewCell的右边距
@property(nonatomic,readonly) CGFloat mk_accessoryCustomViewRightMargin;

//自定义或系统操作区域视图与contentView的左边距
@property(nonatomic,readonly) CGFloat mk_accessoryViewLeftMargin;
//自定义或系统操作区域视图与UITableViewCell的右边距
@property(nonatomic,readonly) CGFloat mk_accessoryViewRightMargin;

/**
 计算cell在指定最大size的情况下,最合适的size值.使用calBlock时,不需要考虑safeAreaInsets,accessoryView,accessoryType,分割线等尺寸
 计算UITableViewCell的高度值,如果返回UITableViewAutomaticDimension,则系统会去调用Cell的sizeThatFits方法,将该返回的height值作为Cell的高度值.
 @param size 外层size值
 @param block 输入contentView的尺寸,计算出在该尺寸下,cell最合适的高度值.该高度值不需要考虑分割线值
 @return cell的最适合的高度值
 */
- (CGSize)mk_sizeThatFits:(CGSize)size sizeFitsBlock:(CGSize(^ __nullable)(CGSize size))block;
@end
NS_ASSUME_NONNULL_END
